@@ -1,3 +1,8 @@ |
||
1 | 1 |
# Place all the behaviors and hooks related to the matching controller here. |
2 | 2 |
# All this logic will automatically be available in application.js. |
3 | 3 |
# You can use CoffeeScript in this file: http://coffeescript.org/ |
4 |
+ |
|
5 |
+jQuery -> $('form').on 'click', '.remove_fields', (event) -> |
|
6 |
+ $(this).prev('input[type=hidden]').val('1') |
|
7 |
+ $(this).closest('fieldset').hide() |
|
8 |
+ event.preventDefault() |
@@ -58,20 +58,13 @@ class MissionsController < ApplicationController |
||
58 | 58 |
# PATCH/PUT /missions/1 |
59 | 59 |
# PATCH/PUT /missions/1.json |
60 | 60 |
def update |
61 |
- params[:mission][:mission_agents_attributes].values.each do |a| |
|
62 |
- agent = MissionAgent.find(a[:id]) |
|
63 |
- agent.description = a[:description] |
|
64 |
- if a[:mission_agent_steps_attributes] != nil |
|
65 |
- a[:mission_agent_steps_attributes].values.each do |s| |
|
66 |
- step = MissionAgentStep.find(s[:id]) |
|
67 |
- step.description = s[:description] |
|
68 |
- step.save |
|
69 |
- end |
|
70 |
- end |
|
71 |
- agent.save |
|
72 |
- end |
|
73 | 61 |
respond_to do |format| |
74 | 62 |
if @mission.update(mission_params) |
63 |
+ @mission.assign_attributes(params[:mission_agents_attributes]) |
|
64 |
+ @mission.assign_attributes(params[:mission_agent_steps_attributes]) |
|
65 |
+ |
|
66 |
+ |
|
67 |
+ |
|
75 | 68 |
format.html { redirect_to @mission, notice: 'Mission was successfully updated.' } |
76 | 69 |
format.json { head :no_content } |
77 | 70 |
else |
@@ -138,6 +131,6 @@ class MissionsController < ApplicationController |
||
138 | 131 |
|
139 | 132 |
# Never trust parameters from the scary internet, only allow the white list through. |
140 | 133 |
def mission_params |
141 |
- params.require(:mission).permit(:title, :description, :status, :agent_search_start, :agent_search_end, :mission_agent_attributes, :mission_agent_step_attributes) |
|
134 |
+ params.require(:mission).permit(:title, :description, :status, :agent_search_start, :agent_search_end, :mission_agents_attributes => [:id, :mission_id, :description, :_destroy], :mission_agent_steps_attributes => [:id, :mission_agent_id, :description, :_destroy]) |
|
142 | 135 |
end |
143 | 136 |
end |
@@ -1,5 +1,6 @@ |
||
1 | 1 |
class Mission < ActiveRecord::Base |
2 | 2 |
belongs_to :owner, :class_name => "User" |
3 |
- has_many :mission_agents |
|
3 |
+ has_many :mission_agents, :dependent => :destroy |
|
4 |
+ has_many :mission_agent_steps, :through => :mission_agents |
|
4 | 5 |
accepts_nested_attributes_for :mission_agents, allow_destroy:true |
5 | 6 |
end |
@@ -2,8 +2,8 @@ class MissionAgent < ActiveRecord::Base |
||
2 | 2 |
belongs_to :mission |
3 | 3 |
belongs_to :user |
4 | 4 |
|
5 |
- has_many :mission_agent_steps |
|
6 |
- has_many :mission_agent_invites |
|
5 |
+ has_many :mission_agent_steps, :dependent => :destroy |
|
6 |
+ has_many :mission_agent_invites, :dependent => :destroy |
|
7 | 7 |
|
8 | 8 |
accepts_nested_attributes_for :mission_agent_steps, allow_destroy:true |
9 | 9 |
accepts_nested_attributes_for :mission_agent_invites |
@@ -3,8 +3,8 @@ |
||
3 | 3 |
<% @step = 1 %> |
4 | 4 |
<%= f.label :description, "Description"%><br/> |
5 | 5 |
<%= f.text_area :description%><br/> |
6 |
- <%= f.check_box :_destroy%> |
|
7 |
- <%= f.label :_destroy, "Remove Agent"%> |
|
6 |
+ <%= f.hidden_field :_destroy%> |
|
7 |
+ <%= link_to "remove", '#', class: "remove_fields"%> |
|
8 | 8 |
<%= f.fields_for :mission_agent_steps do |step_builder| %> |
9 | 9 |
<%= render 'mission_agent_step_form', f: step_builder %> |
10 | 10 |
<%end%> |
@@ -2,7 +2,7 @@ |
||
2 | 2 |
<h4>Step <%= @step %></h4> |
3 | 3 |
<%= f.label :description, "Description"%> |
4 | 4 |
<%= f.text_field :description %> |
5 |
- <%= f.hidden_field :_destroy %> |
|
6 |
- <%= f.label :_destroy, "Remove Step"%> |
|
5 |
+ <%= f.hidden_field :_destroy%> |
|
6 |
+ <%= link_to "remove", '#', class: "remove_fields"%> |
|
7 | 7 |
<% @step = @step + 1 %> |
8 | 8 |
</fieldset> |